//@author A0096759E

package storage;

import java.util.ArrayList;
import java.util.Stack;

public interface StorageInterface {
	//Mutators
	public String addEvent(ScheduleEvent scheduleEvent);
	public String deleteEvent(int eventIndex);
	public String markEventDone (int eventIndex);
	public String markEventUndone (int eventIndex);
	public String clearAllEvents();
	public String sortByAlphabet();
	public String sortByTime();
	public String sortByType();
	public String saveEvents();
	
	//Assessors
	public ScheduleEvent getEvent(int eventIndex);
	public int getSize();
	public Stack<UndoRedoStackEntry> getUndoStack();
	public Stack<UndoRedoStackEntry> getRedoStack();
	public int getEventIndex(ScheduleEvent scheduleEvent);
	public ScheduleEvent getEventByGoogleID(String googleUID);
	public ArrayList<ScheduleEvent> getStorageClone();
	
	//Other Methods
	public String toString();
	public String doneShortString(boolean doneOrUndone);
	public String toShortString();
	public String doneString(boolean doneOrUndone);
	public void clearRedoStack();
	
}
